<?php

class Validacion_model extends CI_Model {

    function __construct() {
        parent::__construct();
    }

    public function permiso($permiso, $rol) {
        $sql = "select * from permisos per inner join programas prog on prog.programaId = per.programaId and prog.programaId = '$permiso' and prog.programaEstado = 'A' where per.rolId = '$rol' and per.permisoEstado = 'A'";
        $query = $this->db->query($sql);
        $resul = ($query->num_rows() > 0) ? "Si" : "No";
        return $resul;
    }

    public function validaMailModel() {
        $mail = $this->input->post("ema");
        $usuarioId = $this->input->post("user");
        $sqlAux = ($usuarioId == "") ? "" : "and usuarioId <> $usuarioId";
        $sql = "select usuario from usuarios where usuario = '$mail' $sqlAux";
        $query = $this->db->query($sql);
        if ($query->num_rows() > 0)
            return "NO";
        else
            return "Si";
    }

    public function ofertaLab($rol, $usuario) {
        switch ($rol) {
            case '3': //institucion
                $servicios = trim($this->input->post("servi"), ",");
                if ($this->input->post("anali") == "Si") {
                    if ($this->analisaOferta($this->input->post("ofe"), $usuario) == 0) {
                        $sql = "insert into indicadores(`indicaAnalisis`,`ofertaLaboralId`,`institucionId`) values(";
                        $sql .= "'{$this->input->post("anali")}','{$this->input->post("ofe")}','$usuario')";
                        $this->db->query($sql);
                    }
                }
                $sql = "select * from postulaciones where personasId = '{$this->input->post("perso")}' and ofertaLaboralId = '{$this->input->post("ofe")}' and postulacionEstado = 'A'";
                $query = $this->db->query($sql);
                if ($query->num_rows() > 0) {
                    $postu = $query->result();
                    //Se ha postulado la persona se valida si fue una postulacion individual o a traves de la institución
                    if (isset($postu[0]->institucionId))
                        echo "2";
                    else
                        echo "3";
                }else {
                    $this->db->trans_start(); //inicia la transaccion
                    $sql = "insert into postulaciones(postulacionFecha,ofertaLaboralId,institucionId,personasId,`postulacionPefilo`) values(";
                    $sql .= "now(),'{$this->input->post("ofe")}','$usuario','{$this->input->post("perso")}','{$this->input->post("perf")}')";
                    $this->db->query($sql);

                    //elimina todos los servicios asociados a la oferta para ingresar los nuevos servicios
                    $sql = "delete from ofertaslaborales_por_serviciosinclusion where `ofertaLaboralId` = '{$this->input->post("ofe")}' and `institucionId` = '{$this->session->userdata("tablaUsuarioId")}'";
                    $this->db->query($sql);
                    //Inserta los nuevos servicios asociados a la oferta laboral
                    if ($servicios != "")
                        $servicios = explode(",", $servicios);
                    if (is_array($servicios)) {
                        /* Solo inserta servicios si agrego un servicio */
                        foreach ($servicios as $ser) {
                            $sql = "insert into ofertaslaborales_por_serviciosinclusion (`ofertaLaboralId`,`servInclusionId`,`institucionId`) values('{$this->input->post("ofe")}','$ser','{$this->session->userdata("tablaUsuarioId")}')";
                            $this->db->query($sql);
                        }
                    }
                    $this->db->trans_complete();
                    echo '1';
                }
                return;
                break;
            case '4': //Personas
                $result = array();
                $sql = "select * from postulaciones where personasId = '$usuario' and ofertaLaboralId = '{$this->input->post("ofe")}' and postulacionEstado = 'A'";
                $query = $this->db->query($sql);
                if ($query->num_rows() > 0) {
                    $postu = $query->result();
                    //Se ha postulado la persona se valida si fue una postulacion individual o a traves de la institución
                    if (isset($postu[0]->institucionId))
                        $result["mensaje"] = "Ya ha sido postulado por la institución a la cual usted pertenece";
                    else
                        $result["mensaje"] = "Usted ya se postulo a esta oferta";
                    $result["result"] = 1;
                }else {
                    $sql = "insert into postulaciones(postulacionFecha,ofertaLaboralId,personasId) values(";
                    $sql .= "now(),'{$this->input->post("ofe")}','$usuario')";
                    $this->db->query($sql);
                    $sql = "select ofer.ofertaLaboralCargo,usr.usuario,per.personaNombres,per.personaApellidos from postulaciones pos
                    inner join ofertaslaborales ofer on ofer.ofertaLaboralId = pos.ofertaLaboralId
                    inner join empresas emp on emp.empresaId = ofer.empresaId
                    inner join usuarios usr on usr.usuarioId = emp.usuarioId
                    inner join personas per on per.personasId = pos.personasId
                    where pos.personasId = '$usuario' and pos.ofertaLaboralId = '{$this->input->post("ofe")}' and pos.postulacionEstado = 'A'";
                    $query = $this->db->query($sql)->result();
                    $result["persona"] = $query[0]->personaNombres." ".$query[0]->personaApellidos;
                    $result["cargo"] = $query[0]->ofertaLaboralCargo;
                    $result["empresa"] = $query[0]->usuario;
                    $result["mensaje"] = 'Se ha postulado correctamente';
                    $result["result"] = 0;
                }
                return $result;
                break;
        }
        return;
    }

    public function cancelaPosula() {
        $sql = "update postulaciones set postulacionEstado = 'I',postulacionFecInactivo = now() where postulacionesId = '{$this->input->post("postul")}'";
        $this->db->query($sql);
        echo "Se cancelo la postulación correctamente";
    }

    public function cuenPost() {
        /* Funcion para contar el número de postulacion de una oferta laboral */
        $sql = "select * from postulaciones where ofertaLaboralId = '{$this->input->post("oferta")}' and postulacionEstado = 'A' and postulacionPreseleccion = 'No'";
        return $this->db->query($sql)->num_rows();
    }

//fin public function cuenPost() {

    public function solServ() {
        $sql = "select * from postulaciones where solServyAseId = '{$this->input->post("soli")}' and postulacionEstado = 'A' and postulacionPreseleccion = 'No'";
        return $this->db->query($sql)->num_rows();
    }

    public function analisaOferta($oferta, $instiId) {
        /* verifica si ya ha realizado el analisis a dicha empresa respecto a la oferta laboral */
        $sql = "select * from indicadores where `ofertaLaboralId` = '$oferta' and `institucionId` = '$instiId' and `indicaAnalisis` = 'Si'";
        return $this->db->query($sql)->num_rows();
    }

    public function validaDiscapacidad($transaccion, $tipoDisca) {
        /* Funcion para validar que no se repita la discapacidad */
        $sql = "select count(*) as total from temporal where transaccion = '$transaccion' and tempVarchar1 = '$tipoDisca' and tempInd = 'discapacidad' ";
        $return = $this->db->query($sql)->result();
        return $return[0]->total;
    }

//fin public function validaDiscapacidad($transaccion,$tipoDisca){
}

?>
